//https://leetcode.cn/problems/divide-two-integers/
//leetcode第29题，两数相除，不能使用乘法，除法和取余
class Solution {
public:
    int divide(int dividend, int divisor) {
        bool flag=(dividend>=0&&divisor>0)||(dividend<0&&divisor<0);
        long long d1=dividend,d2=divisor;
        if(d1==INT_MIN&&d2==-1)return INT_MAX;
        d1=abs(d1),d2=abs(d2);
        if(d2==1)return flag?d1:-d1;
        if(d2==2)return flag?(d1>>1):-(d1>>1);
        int res=0;
        while(d1>=d2)
        {
            d1-=d2;
            res++;
        }
        return flag?res:-res;
    }
};
